#ifndef __SHIP_H__
#define __SHIP_H__

#include "light.h"
#include "model.h"

class Ship :
            public Model {
public:
    Ship(Game* game);
    virtual ~Ship(void);
    void SetActionAdvance(float val);
    void SetActionRotateX(float val);
    void SetActionRotateY(float val);
    void SetActionRotateZ(float val);
    Vector4 GetDirection() const;
    Vector4 GetUpVector() const;
    virtual Matrix4x4 GetWorldMatrix();
    virtual void Draw(float timeDelta);
    virtual void Initialize();
    virtual void LoadContent();
    virtual void Update(float timeDelta);
private:
    float acceleration;
    float actionAdvance;
    float actionRotateX;
    float actionRotateY;
    float actionRotateZ;
    Vector4 direction;
    Light* engineLight;
    float maxSpeed;
    Model* modelCannons;
    Model* modelMissiles;
    Model* modelRacks;
    float rotationSpeed;
    float speed;
    Vector4 up;
    void ResetActions();
};

#endif